// 测试用户相关接口的脚本
import { createPool } from './src/util/db.js';
import { createAdminUsersTable, initAdminUser, getAdminUser, updateAdminUser } from './src/controllers/users.js';
import dotenv from 'dotenv';

// 加载环境变量
dotenv.config();

async function testUserOperations() {
  try {
    // 初始化数据库连接
    createPool();
    
    console.log('=== 测试用户数据库操作 ===');
    
    // 1. 创建用户表
    console.log('1. 创建用户表...');
    await createAdminUsersTable();
    console.log('✓ 用户表创建成功');
    
    // 2. 初始化管理员用户
    console.log('2. 初始化管理员用户...');
    await initAdminUser();
    console.log('✓ 管理员用户初始化成功');
    
    // 3. 获取用户信息
    console.log('3. 获取用户信息...');
    const userData = await getAdminUser();
    console.log('✓ 用户信息:', userData[0]);
    
    // 4. 更新用户信息
    console.log('4. 更新用户信息...');
    await updateAdminUser('超级管理员', 'superadmin@example.com', '/uploads/new-avatar.jpg');
    console.log('✓ 用户信息更新成功');
    
    // 5. 再次获取用户信息验证更新
    console.log('5. 验证更新结果...');
    const updatedUserData = await getAdminUser();
    console.log('✓ 更新后的用户信息:', updatedUserData[0]);
    
    console.log('\n=== 所有测试完成 ===');
    
  } catch (error) {
    console.error('测试过程中出现错误:', error);
  } finally {
    process.exit(0);
  }
}

// 运行测试
testUserOperations();
